home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1990-10-09 | 4.1 KB | 144 lines |
- (* ---------------------------------------------------------------------------
-
- IFF.def - Library Interface Module for the iff.library, V18.8, 31-Jul-90
-
- By Olivier Schraner, Roggenweg 6, 5036 Oberentfelden/AG, Switzerland
- For A+L's "M2Amiga" Modula-2 Compiler V3.3
-
- --------------------------------------------------------------------------- *)
-
- DEFINITION MODULE IFF {"iff.library",18};
-
- FROM SYSTEM IMPORT ADDRESS,CAST;
- FROM Graphics IMPORT BitMapPtr,ViewModeSet;
- FROM Exec IMPORT MemReqs,MemReqSet;
-
- CONST
- badTask = -1; (* IFFError() called by wrong task *)
- cantOpenFile = 16; (* File not found *)
- readError = 17; (* Error reading file *)
- noMem = 18; (* Not enough memory *)
- notIFF = 19; (* File is not an IFF file *)
- writeError = 20; (* Error writing file *)
- noILBM = 24; (* IFF file is not of type ILBM *)
- noBMHD = 25; (* BMHD chunk not found *)
- noBODY = 26; (* BODY chunk not found *)
- tooManyPlanes = 27; (* Obsolete since V18.6 *)
- unknownCompression = 28; (* Unknown compression type *)
- noANHD = 29; (* ANHD chunk not found *)
- noDLTA = 30; (* DLTA chunk not found *)
-
- idFORM = CAST(LONGINT,"FORM") ;
- idPROP = CAST(LONGINT,"PROP") ;
- idLIST = CAST(LONGINT,"LIST") ;
- idCAT = CAST(LONGINT,"CAT ")-ORD(" ") ;
-
- idANIM = CAST(LONGINT,"ANIM") ;
- idANHD = CAST(LONGINT,"ANHD") ;
- idILBM = CAST(LONGINT,"ILBM") ;
- idBMHD = CAST(LONGINT,"BMHD") ;
- idBODY = CAST(LONGINT,"BODY") ;
- idCAMG = CAST(LONGINT,"CAMG") ;
- idCLUT = CAST(LONGINT,"CLUT") ;
- idCMAP = CAST(LONGINT,"CMAP") ;
- idCRNG = CAST(LONGINT,"CRNG") ;
- idDLTA = CAST(LONGINT,"DLTA") ;
- idSHAM = CAST(LONGINT,"SHAM") ;
-
- id8SVX = CAST(LONGINT,"8SVX") ;
- idATAK = CAST(LONGINT,"ATAK") ;
- idNAME = CAST(LONGINT,"NAME") ;
- idRLSE = CAST(LONGINT,"RLSE") ;
- idVHDR = CAST(LONGINT,"VHDR") ;
-
-
- TYPE
- UByte=[0..255];
-
- Chunk=RECORD
- ckID:LONGINT;
- ckSize:LONGINT;
- (* ckData:ARRAY [1..ckSize] OF UByte; (variable size) *)
- END;
- ChunkPtr=POINTER TO Chunk;
-
- BitMapHeader=RECORD
- w:CARDINAL;
- h:CARDINAL;
- x:INTEGER;
- y:INTEGER;
- nPlanes:UByte;
- masking:UByte;
- compression:UByte;
- pad1:UByte;
- transparentColor:CARDINAL;
- xAspect:UByte;
- yAspect:UByte;
- pageWidth:INTEGER;
- pageHeight:INTEGER;
- END;
- BitMapHeaderPtr=POINTER TO BitMapHeader;
-
- AnimHeader=RECORD
- operation:UByte;
- mask:UByte;
- w:CARDINAL;
- h:CARDINAL;
- x:INTEGER;
- y:INTEGER;
- absTime:LONGCARD;
- relTime:LONGCARD;
- interleave:UByte;
- pad0:UByte;
- bits:LONGCARD;
- pad:ARRAY [0..15] OF UByte;
- END;
- AnimHeaderPtr=POINTER TO AnimHeader;
-
- CompressionFlags=(cmpByteRun1,cf1,cf2,cf3,cf4,cf5,cf6,thisIsHAM,cf8,cf9,
- cf10,cf11,cf12,cf13,cf14,cf15,cf16,cf17,cf18,cf19,cf20,
- cf21,cf22,cf23,cf24,cf25,cf26,cf27,cf28,cf29,cf30,cf31);
- CompressionFlagSet=SET OF CompressionFlags;
-
-
-
- PROCEDURE OpenIFF(filename{8}:ADDRESS):ADDRESS; CODE -30;
-
- PROCEDURE CloseIFF(ifffile{9}:ADDRESS); CODE -36;
-
- PROCEDURE FindChunk(ifffile{9}:ADDRESS;
- chunkname{0}:LONGINT):ADDRESS; CODE -42;
-
- PROCEDURE GetBMHD(ifffile{9}:ADDRESS):BitMapHeaderPtr; CODE -48;
-
- PROCEDURE GetColorTab(ifffile{9}:ADDRESS;
- colortable{8}:ADDRESS):LONGINT; CODE -54;
-
- PROCEDURE DecodePic(ifffile{9}:ADDRESS;
- bitmap{8}:BitMapPtr):BOOLEAN; CODE -60;
-
- PROCEDURE SaveBitMap(filename{8}:ADDRESS;
- bitmap{9}:BitMapPtr;
- colortable{10}:ADDRESS;
- flags{0}:CompressionFlagSet):BOOLEAN; CODE -66;
-
- PROCEDURE SaveClip(filename{8}:ADDRESS;
- bitmap{9}:BitMapPtr;
- coltab{10}:ADDRESS;
- flags{0}:CompressionFlagSet;
- xoff{1}:LONGINT;
- yoff{2}:LONGINT;
- width{3}:LONGINT;
- height{4}:LONGINT):BOOLEAN; CODE -72;
-
- PROCEDURE IFFError():LONGINT; CODE -78;
-
- PROCEDURE GetViewModes(ifffile{9}:ADDRESS):ViewModeSet; CODE -84;
-
- PROCEDURE NewOpenIFF(filename{8}:ADDRESS;type{0}:MemReqSet):ADDRESS; CODE -90;
-
- PROCEDURE ModifyFrame(modForm{9}:ADDRESS;bm{8}:BitMapPtr):BOOLEAN; CODE -96;
-
-
- END IFF.
-